package ru.bank.paymentprocessing;

import io.restassured.RestAssured;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpStatus;
import ru.bank.paymentprocessing.service.PaymentService;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class BankAccountControllerTest {
    @LocalServerPort
    int port;

    @Autowired
    private PaymentService paymentService;

    @BeforeEach
    void setUp() {
        RestAssured.baseURI = "http://localhost:" + port;
        paymentService.init();
    }

    @Test
    void testGetBankAccountOfEMoney_Success() {
        given()
                .when()
                .get("/api/bankAccountOfEMoney")
                .then()
                .statusCode(HttpStatus.OK.value())
                .contentType("application/json")
                .body(equalTo("0")); // Предполагая, что возвращается текущее количество бонусов
    }

    @Test
    void testGetMoney_Success() {
        given()
                .when()
                .get("/api/money")
                .then()
                .statusCode(HttpStatus.OK.value())
                .contentType("application/json")
                .body(equalTo("5000")); // Предполагая, что возвращается текущее количество денег на счете
    }
}
